<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES Module - 模块的特性</title>
</head>
<body>
    <!-- 通过给 script 添加 type = module 属性， 就可以以 ES Module 的标准执行其中的 JS 代码 -->
    <script type="module">
        console.log('this is es module')
    </script>

    <!-- 1. 自动采用严格模式， 忽略'use strict'  -->
    <script type="module">
        // 将module属性去掉后， this默认指向windows
        console.log(this) // undefined
    </script>

    <!-- 2. 每个 ESM 模块都是单独的私有作用域  -->
    <script type="module">
        var foo = 'foo'
        console.log(foo) 
    </script>
    <script type="module">
        console.log(foo) // undefined
    </script>

    <!-- 3. EMS 是通过 CORS 去请求外部 JS 模块的  -->
    <script type="module" src="https://unpkg.com/jquery@3.4.1/dist/jquery.min.js"></script>  

    <!-- 4. ESM 的 script 标签会延迟执行脚本  -->
    <script defer src="demo.js">
        //  type="module" = defer => 延迟脚本的运行
    </script>
    <p>ESM 的 script 标签会延迟执行脚本</p>
</body>
</html>